#include <bits/stdc++.h>

using namespace std;

int n,a[1010][1010], f[1010][1010];
int dfs(int x,int y){
    if(x==n)return a[x][y];
    if(f[x][y]!=-1)return f[x][y];
    f[x][y] = max(dfs(x+1,y),dfs(x+1,y+1))+a[x][y];
    return f[x][y];
}
int main()
{
    cin>>n;
    for(int i=1;i<=n;i++){
        for(int j=1;j<=i;j++){
            cin>>a[i][j];
        }
    }
    memset(f,-1,sizeof(f));
    cout<<dfs(1,1);
    return 0;
}
